﻿using DeHeng_Mes.Business;
using DeHeng_Mes.Utils;
using System;
using System.Threading;
using System.Windows.Forms;

namespace DeHeng_Mes {
    static class Program {

        public static MainForm main;
        private static Mutex _mutex;
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main() {
            try {
                // 设置唯一的Mutex名称（建议用GUID或程序名）
                const string mutexName = "DEH-MES-DATA_12345678-90AB-CDEF-1234-567890ABCDEF";

                // 尝试创建互斥体
                bool createdNew;
                _mutex = new Mutex(true, mutexName, out createdNew);

                if (!createdNew)
                {
                    // 如果互斥体已存在，说明程序已在运行
                    MessageBox.Show("程序已在运行中！", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                main = new MainForm();
                Application.Run(main);

                // 释放Mutex（程序结束时）
                GC.KeepAlive(_mutex); // 防止GC提前回收
            } catch (Exception ex) {
                MessageBox.Show("系统内部发生错误请联系管理员处理,原因：" + ex.Message, "系统提示");
            }
        }
    }
}
